﻿'IsNumeric y Not IsNumeric se usa para comprobar si una variable es o no numérica.
'If IsNumeric(variable) then
'acciones...
'End If

'Para convertir de número a cadena se usa: Str (numero).
'Para convertir de cadena a númerio se usa: Val(texto).

Module Module1

    Sub Main()
        Dim opcion1, opcion2 As Integer
        opcion1 = 0
        opcion2 = 0
        Console.WriteLine("1-	Tabla de multiplicar. ")
        Console.WriteLine("2-	Calculadora. ")
        Console.WriteLine("3-	Tablas 1 al 10 por pantalla. ")
        Console.WriteLine("4-	Salir. ")
        Console.WriteLine("Introduce la opción que desee realizar.")
        opcion1 = Console.ReadLine()
        If IsNumeric(opcion1) Then
            Console.WriteLine("La variable es numérica")
        Else
            Console.WriteLine("La variable no es numérica y no sirve.")
        End If
        Select Case opcion1
            Case 1
                Console.Write("Elija un valor del 1 al 10: ")
                opcion2 = Console.ReadLine()
                If IsNumeric(opcion2) Then
                    Console.WriteLine("La variable es numérica")
                Else
                    Console.WriteLine("La variable no es numérica y no vale")
                End If
                If opcion2 > -1 And opcion2 < 11 Then
                    'llamo a otro procemimiento
                    mostrarTabla(opcion2)
                    Main()

                Else
                    Console.WriteLine("No se admiten valores distintos del 1 al 4. Se reiniciará la aplicación")
                    Main()
                End If


            Case 2
                'calculadora
                Console.Write("Elija el primer valor: ")
                Dim valor1 As Integer = Console.ReadLine()
                Console.Write("Elija el segundo valor: ")
                Dim valor2 As Integer = Console.ReadLine()
                Console.Write("Elija la operación de entre los siguientes símbolos --> +  - *  /  por favor: ")
                Dim operacion As String = Console.ReadLine()
                Select Case operacion
                    Case "+"
                        Console.WriteLine("El resultado es: " & (valor1 + valor2))
                    Case "-"
                        Console.WriteLine("El resultado es: " & (valor1 - valor2))
                    Case "*"
                        Console.WriteLine("El resultado es: " & (valor1 * valor2))
                    Case "/"
                        Console.WriteLine("El resultado es: " & (valor1 / valor2))

                End Select
                Main()


            Case 3
                For i = 0 To 10
                    mostrarTabla(i)
                Next
                Main()

            Case 4
                Console.WriteLine("¿Está seguro de que quiere salir? Sí es así pulse * sino pulse otra cosa")
                Dim confirmacion As Char
                confirmacion = Console.ReadLine()
                If Not IsNumeric(confirmacion) Then
                    Console.WriteLine("La variable no es numérica")
                Else
                    Console.WriteLine("La variable es numérica y no vale")
                End If
                If confirmacion = "*" Then
                    Console.WriteLine("Ha salido del programa")
                    Console.ReadLine()
                Else
                    Console.WriteLine("No ha salido del programa")
                    Console.ReadLine()
                End If
                Exit Sub

            Case Else
                Console.WriteLine("No se admiten valores distintos del 1 al 4. Se reiniciará la aplicación")
                Main()

        End Select
        Console.ReadLine()


    End Sub

    Sub mostrarTabla(ByVal valor)
        Dim i As Integer = 0
        Dim producto As Integer
        For i = 0 To 10
            producto = valor * i
            Console.WriteLine(valor & " x " & i & "= " & producto)
        Next

    End Sub


End Module
